package controller;

import controller.Controller.StateType;

/*
 * 
 * IState class
 * 
 * Interface which is implemented by the separate states.
 * Used to evaluate user input depending on the state of the game.
 * 
 */

public interface IState {

	/**
	 * getState
	 * 
	 * returns the current state that state machine is in
	 * 
	 * @return current StateType
	 */
	public StateType getState();

	/**
	 * handleKeyPressed
	 * 
	 * asks the stateMachine to handle the current key being pressed
	 * 
	 * @param keyCode
	 */
	public void handleKeyPressed(int keyCode);

	/**
	 * handleKeyReleased
	 * 
	 * asks the stateMachine how to handle the key that is currently being
	 * released
	 * 
	 * @param keyCode
	 */
	public void handleKeyReleased(int keyCode);
}
